/**
 * Create a circle
 * @version 1.0
 * @param {Number} x x coordinate of the circle
 * @param {Number} y y coordinate of the circle
 * @param {Number} radius The radius of the circle
 * @param {Object} x Object containing the x, y coordinates and optionally the radius of the circle
 * @returns true
 */
com.bb.geom.Circle = function (x, y, radius) {
	if (typeof x === 'object' && typeof x.x === 'number' && typeof x.y === 'number' && typeof x.radius === 'number') {
		/* Call Point in the scope of this */
		com.bb.geom.Point.call(this, x.x, x.y);
		this.radius = x.radius;
	}
	else if (typeof x === 'object' && typeof x.x === 'number' && typeof x.y === 'number') {
		/* Call Point in the scope of this */
		com.bb.geom.Point.call(this, x);
		this.radius = radius;
	}
	else {
		/* Call Point in the scope of this */
		com.bb.geom.Point.call(this, x, y);
		this.radius = radius;
	}
	return true;
};

/* Inherit the Point classes prototype methods */
com.bb.geom.Circle.extend(com.bb.geom.Point);

/**
 * Get the radius of the circle
 * @returns {Number} the radius of the circle
 */
com.bb.geom.Circle.prototype.getRadius = function () {
	return this.radius;
};
/**
 * Set the radius of the circle
 * @param {Number} radius The new radius of the circle
 * @returns true
 */
com.bb.geom.Circle.prototype.setRadius = function (radius) {
	this.radius = radius;
	return true;
};
/**
 * Increase the radius of the circle by a given ammount
 * @param {Number} ammount An ammount to increase the radius of the circle by
 */
com.bb.geom.Circle.prototype.grow = function (ammount) {
	this.radius += ammount;
	return true;
};
/**
 * Decrease the radius of the circle by a given ammount
 * @param {Number} ammount An ammount to decrease the radius of the circle by
 */
com.bb.geom.Circle.prototype.shrink = function (ammount) {
	this.radisu -= ammount;
	return true;
};
